<?php

namespace Admin\Controller;

/**
 * Description of AdminController
 *
 * @author 阿明 symphp@foxmail.com
 */
class AdminController extends \Think\Controller{
    
    //创建模型对象
    private $_model = null;

    protected function _initialize() {
        //构建数据
        $meta_titles = array(
            'index' => '管理员管理',
            'add' => '管理员添加',
            'edit' => '管理员修改',
            'delete' => '管理员删除',
        );
        $meta_title = $meta_titles[ACTION_NAME];
        //发送数据
        $this->assign('meta_title', $meta_title);
        //创建模型对象
        $this->_model = D('Admin');
    }
    
    /**
     * 后台登录页面
     */
    public function login(){
        if(IS_POST){
            //收集数据
            if($this->_model->create('','login') === false){
                $this->error(get_error($this->_model->getError()));
            };
            //登录验证
            if($this->_model->login() === false){
                 $this->error(get_error($this->_model->getError()));
            }
            //添加成功
            $this->success('登录成功',U('index/index'),2);
        }else{
        $this->display('login');
        }
    }

        /**
     * 显示后台首页
     */
    public function index(){
        //获取并发送数据
        $this->assign('rows',$this->_model->getList());
        $this->display();
    }
    
    public function add() {
        if (IS_POST) {
            if($this->_model->create() === false){
                $this->error(get_error($this->_model->getError()));
            }
            if($this->_model->addAdmin()===false){
                $this->error(get_error($this->_model->getError()));
            };
            $this->success('添加成功');
        } else {
            //调用权限表和角色表的数据
             $this->_before_view();
            $this->display();
        }
    }
    
    /*
     * 编辑列表
     */
    public function edit($id){
        if(IS_POST){
            if($this->_model->create() === false){
                $this->error(get_error($this->_model->getError()));
            };
            if($this->_model->updateAdmin() === false){
                $this->error(get_error($this->_model->getError()));
            }
            $this->success('修改成功',U('index'));
        }else{
                //获取基本数据
               $this->assign('row',$this->_model->getAdminInfo($id));
               $this->_before_view();
               $this->display('add');
          }
    }
    
    public function del($id){
        if($this->_model->delectAdmin($id) == false){
            $this->error(get_error($this->_model->getError()));
        };
         $this->success('删除成功',U('index'));
    }

    /**
     * 创建一个公共函数用于传递数据
     */
    private function _before_view() {
        //准备所有的权限,用于ztree展示
        $permissions = D('Permission')->getList('id,name,parent_id');
        $this->assign('permissions', json_encode($permissions));
        //准备所有的角色
        $roles = D('Role')->getList('id,name');
        $this->assign('roles', $roles);
    }
    
    
    
}
